import request from '@/request/request'
import axios from 'axios'

/**
 * 获取所有轮播图
 * @returns {Promise}
 */
export function getAllBanners() {
  return request({
    url: '/api/admin/banners/Bannerlist',
    method: 'get'
  })
}

/**
 * 获取轮播图详情
 * @param {number} id - 轮播图ID
 * @returns {Promise}
 */
export function getBannerById(id) {
  return request({
    url: '/api/admin/banners/getBuBannerid',
    method: 'get',
    params: { id }
  })
}

/**
 * 添加轮播图
 * @param {Object} bannerData - 轮播图数据
 * @returns {Promise}
 */
export function addBanner(bannerData) {
  return request({
    url: '/api/admin/banners/addBanner',
    method: 'post',
    data: bannerData
  })
}

/**
 * 修改轮播图
 * @param {Object} bannerData - 轮播图数据
 * @returns {Promise}
 */
export function updateBanner(bannerData) {
  return request({
    url: '/api/admin/banners/updateBanner',
    method: 'get', // 严格按照后端接口定义使用GET方法
    data: bannerData, // 虽然GET通常不应该有body，但严格按照后端要求
    headers: {
      'Content-Type': 'application/json'
    }
  })
}

/**
 * 删除轮播图
 * @param {number} id - 轮播图ID
 * @returns {Promise}
 */
export function deleteBanner(id) {
  return request({
    url: '/api/admin/banners/deleteBanner',
    method: 'delete',
    params: { id }
  })
}

/**
 * 上传轮播图图片
 * @param {File} file - 图片文件
 * @returns {Promise}
 */
export function uploadBannerImage(file) {
  // 创建FormData实例
  const formData = new FormData()
  formData.append('file', file)
  
  console.log('准备上传文件:', file.name, file.type, file.size)
  
  return request({
    url: '/api/admin/banners/uploadBannerImg',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    },
    // 阻止axios自动处理Content-Type，让浏览器自动设置带boundary的Content-Type
    transformRequest: [function (data) {
      return data; // 不做任何处理，返回原始formData
    }]
  })
} 